Linux httpd
1 背景知识
1.1 HTTP
HTTP协议,全称 HyperText Transfer Protocol
,中文名为超文本传输协议,是互联网中最常用的一种网络协议。HTTP 的重要应用之一是 WWW
服务。设计HTTP协议的最初目的就是提供一种发布和接受 HTML 页面的方法。
HTTP 协议是互联网上最常用的通信协议之一。应用场景极为广泛。最流行的场景为WEB浏览器和web 服务器之间的通信。
WWW,全称为 World Wid Web
,常称之为 Web
,中文译为“万维网”。它是目前互联网上最受用户欢迎的信息服务形式。HTTP 协议的 WWW 服务应用默认端口为80 ,另外的一个加密 WWW 服务应用 HTTPS 默认端口为443 ,主要用于网银,支付和安全性较高的业务。
1.2 Apache
Apache 是世界使用排名第一的Web 服务器软件。它可以运行在所有的计算机平台上。
Apache 源于 NCSAhttpd 服务器,经过多次迭代开发,成为了世界上最流行的Web 服务器软件之一。 Apache 来自 a patchy server
的连读音,意思是充满补丁的服务器,由于是开源软件,所以有很多人为他开发新的功能、新的特性、修复缺陷。
Apache 的特点是简单、速度块、性能文件,并可以作为代理服务器使用。
2 Apache 安装
dnf install httpd -y
3 Apache 配置文件
rpm 命令中有 -qc
,可以显示软件相关的配置文件。其中 /etc/httpd/conf/httpd.conf
为Apache 软件的配置文件。
rpm -qc httpd
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf
/etc/httpd/conf.modules.d/00-optional.conf
/etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/logrotate.d/httpd
/etc/sysconfig/htcacheclean
4 Apache 配置文件解析
选项 | 值 | 说明 |
---|---|---|
DocumentRoot | "/var/ www/html" | 默认Web目录 |
ServerRoot | "/etc/httpd" | 服务运行时的目录。 |
Listen | 80 | 服务运行的端口。 |
User/Group | apache | 启动服务所使用的用户。 |
ServerAdmin | root@localhost | 服务管理员的邮箱。 |
4.1 根目录
DocumentRoot
设置根目录的位置。
DocumentRoot "/var/www/html"
4.2 目录权限
表示对于 /
根目录所有的网页都不允许访问。
<Directory />
AllowOverride none
Require all denied
</Directory>
表示对于 /var/www
目录所有的网页都允许访问。
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
表示对于 /var/www/html
目录所有的网页都允许访问。
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
对于Apache 服务可以使用 Directory
控制目录的访问权限,上面三种规则可以同时生效。
5 Apache 基于主机头
创建新的虚拟机,使用不同的域名指向 Apache 的不同目录。
<VirtualHost 192.168.10.175:80>
ServerName www.web1.com
DocumentRoot /var/www/html/web1
</VirtualHost>
<VirtualHost 192.168.10.175:80>
ServerName www.web2.com
DocumentRoot /var/www/html/web2
</VirtualHost>
5.1 验证 web 服务是否正常
curl http://www.web1.com:80
curl http://www.web2.com:80
6 Apache 基于端口号
创建新的虚拟机,使用不同的端口号指向 Apache 的不同目录。也可以通过 Require not ip
选项控制网站访问。
Listen 8080
<VirtualHost 192.168.10.175:8080>
DocumentRoot /var/www/html/web1
</VirtualHost>
<Directory /var/www/html/web1>
<Requireall>
Require all granted
Require not ip 192.168.10.176
</Requireall>
</Directory>
Listen 8081
<VirtualHost 192.168.10.175:8081>
ServerName www.web1.com
DocumentRoot /var/www/html/web2
</VirtualHost>
6.1 验证 web 服务是否正常
curl http://server1:8080
curl http://server1:8081
7 配置虚拟目录
Alias /net "/uos"
<Directory "/uos">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
<VirtualHost 192.168.10.175:80>
ServerName www.uosexam.com
DocumentRoot /var/www/virsh
</VirtualHost>